package com.quanz.ckgl.services;

import org.crank.crud.criteria.Criterion;
import org.crank.crud.criteria.OrderBy;

/**
 * 货架信息维护服务
 * 
 * @author James Quan
 * @version 2015年10月4日 下午2:50:18
 */
public interface RackService {

	/**
	 * 根据id查找货架信息
	 * 
	 * @param id
	 *            货架id
	 * @return
	 */
	public Rack findRackById(String id);


	/**
	 * 返回满足约束条件的货架对象集合
	 * 
	 * @param orderBy
	 *            返回结果时的排序设置
	 * @param startPosition
	 *            返回结果前 跳过的记录条数，如果设置为-1则不控制
	 * @param maxResults
	 *            返回结果的最大记录条数，如果设置为-1则不控制
	 * @param criteria
	 *            查询约束条件
	 * @return
	 */
	public Rack[] findRack(OrderBy[] orderBy, int startPosition,
			int maxResults, Criterion... criteria);

	/**
	 * 返回满足约束条件的货架对象个数
	 * 
	 * @param criteria
	 *            查询约束条件
	 * @return
	 */
	public int findRackCount(Criterion... criteria);
	
	/**
	 * 建立新货架
	 * 
	 * @param rack
	 *            待建立的货架信息
	 * @return
	 */
	public Rack createRack(Rack rack);

	/**
	 * 保存对货架信息的修改
	 * 
	 * @param rack
	 *            待保存的货架
	 */
	public void updateRack(Rack rack);

	/**
	 * 删除货架信息
	 * 
	 * @param rack
	 */
	public void removeRack(Rack rack);
}
